package com.tanhua.server.exception;

import com.tanhua.domain.vo.ErrorResult;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * spring全局异常
 * 1、方式1：通过接口HandlerExceptionResolver实现全局异常
 * 2、方式2：通过注解@ControllerAdvice实现全局异常
 *
 * 全局异常：当控制器方法出现异常，会自动来到全局异常类中。
 */
@ControllerAdvice
public class ExceptionAdvice {

    /**
     * @ExceptionHandler  指定处理的异常类型
     * @ResponseBody      把方法返回的对象自动转json
     */
    @ExceptionHandler(value = Exception.class)
    @ResponseBody
    public ResponseEntity<Object> handlerException(Exception e){
        e.printStackTrace();
        return ResponseEntity.status(500).body(ErrorResult.error());
    }
}
